package at.fhj.itm11.forum.service.converter;

import java.util.ArrayList;
import java.util.List;

import at.fhj.itm11.forum.model.Post;
import at.fhj.itm11.forum.model.User;
import at.fhj.itm11.forum.service.dtos.PostDTO;
import at.fhj.itm11.forum.service.dtos.UserDTO;

public class PostDTOConverter implements DTOConverter<PostDTO, Post> {
	
	public DTOConverter<UserDTO, User> userDtoConverter = new UserDTOConverter();
	
	@Override
	public PostDTO convertToDto(Post postEntity) {
		PostDTO dto = new PostDTO();
		
		dto.setId(postEntity.getId());
		dto.setDate(postEntity.getDate());
		dto.setText(postEntity.getText());
		dto.setTitle(postEntity.getTitle());
		dto.setUser(userDtoConverter.convertToDto(postEntity.getUser()));
		dto.setImage(postEntity.getImage());
		dto.setVideo(postEntity.getVideo());
		
		return dto;
	}

	@Override
	public List<PostDTO> convertToDto(List<Post> postEntities) {
		List<PostDTO> postDtoList = new ArrayList<PostDTO>();
		
		for(Post p : postEntities) {
			postDtoList.add(convertToDto(p));
		}
		
		return postDtoList;
	}

	@Override
	public Post convertToEntity(PostDTO postDto) {
    	Post p = new Post();
    	
    	p.setId(postDto.getId());
    	p.setDate(postDto.getDate());
    	p.setText(postDto.getText());
    	p.setTitle(postDto.getTitle());
    	p.setUser(userDtoConverter.convertToEntity(postDto.getUser()));
    	p.setImage(postDto.getImage());
    	p.setVideo(postDto.getVideo());
    	
    	return p;
	}
}
